# 过滤特殊消息
from utils.sender_tools import SenderTools
from utils.wechat_pad_tools import WeChatPadClient



async def fiter_special_chat(content: str, to_user: str,key: str)-> bool:
    """
    过滤特殊消息，对执行消息回复指定类型的回答，不走模型，返回true和false
    true：表示匹配过滤成功，已经处理
    false：表示没有匹配成功，就表示不是需要的字段
    """
    wc = WeChatPadClient()
    send = SenderTools()
    if content=="怎么查征信":
        """
        将征信查询教程文件进行发送，这里首先需要将文件进行上传到微信cdn服务器，获取到md5，aeskey,等值
        用这些值进行下一步请求，发送app消息
        """
        comtentxml = wc.build_content_xml(wc.upload_file_to_cdn(r"D:\data\wechat\fixedfile\社保查询流程.pptx", "社保查询流程.pptx", key)["Data"])
    elif content=="怎么查不动产":
        comtentxml = wc.build_content_xml(wc.upload_file_to_cdn(r"D:\data\wechat\fixedfile\合肥不动产查询.pptx", "合肥不动产查询.pptx", key)["Data"])
    elif content=="怎么查个人所得税":
        comtentxml = wc.build_content_xml(wc.upload_file_to_cdn(r"D:\data\wechat\fixedfile\查询个人所得税.pptx", "查询个人所得税.pptx", key)["Data"])
    elif content=="怎么查公积金":
        comtentxml = wc.build_content_xml(wc.upload_file_to_cdn(r"D:\data\wechat\fixedfile\公积金查询流程.pptx", "公积金查询流程.pptx", key)["Data"])
    elif content=="怎么查学历":
        comtentxml = wc.build_content_xml(wc.upload_file_to_cdn(r"D:\data\wechat\fixedfile\学信网查学历.pdf", "学信网查学历.pdf", key)["Data"])
    else:
        return False
    state = send.send_app_messages(comtentxml, to_user, key)
    if state["code"] == 200:
        return True
    else:
        raise Exception(state["message"])


async def filter_msg_by_type(msg_type: int) -> bool:
    """
        如果不是文本和图片消息就返回true 表示这个消息被过滤了 后续不进行处理
        过滤消息，对执行消息回复指定类型的回答，不走模型，返回true和false
        true：表示匹配过滤成功，已经处理  1表示文本数据 3表示图片数据
        false：表示没有匹配成功，就表示不是需要的字段
        """
    if msg_type not in [1, 3]:
        return True
    else:
        return False


# async def filter_msg_by_content(content: str) -> bool:
#     """
#     过滤消息，对执行消息回复指定类型的回答，不走模型，返回true和false
#     true：表示匹配过滤成功，已经处理
#     false：表示没有匹配成功，就表示不是需要的字段
#     """
#     if content.startswith("怎么查") or content.startswith("如何查") or content.startswith("如何查询") or content.startswith("如何使用") or content.startswith("如何使用"):
#         return True
#     else: